package com.albaba.designpattern.observer.text_001;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 具体目标类
 * @Author zx
 * @Date 2025/2/24 15:30
 * @Version 1.0
 */
public class ConcreteSubject implements Subject {

    List<Observer> observerList = new ArrayList<>();

    @Override
    public void attach(Observer observer) {
        System.out.println("注册方法，向观察者集合增加一个观察者");
        observerList.add(observer);
    }

    @Override
    public void detach(Observer observer) {
        System.out.println("注销方法，从观察者集合中删除一个观察者");
        observerList.remove(observer);
    }

    @Override
    public void notifyObservers() {
        System.out.println("通知方法，通知观察者更新");
        for (Observer observer : observerList) {
            observer.update();
        }
    }
}
